<?php
//tbf库其他地方使用的配置.
class TbfConfig {
    //项目根目录
    static $AppRootPath;
    //配置文件路径
    static $ConfigPath;
    //模板文件路径
    static $TplPath;
    //临时文件路径
    static $TmpPath;
    //日志文件目录路径
    static $LogPath;
    //Php代码的Src目录,应该是放所有php代码的地方(在嵌入项目中叫'Common'目录)
    static $PhpSrcPath;
    //上传文件保存的路径,不包含结尾的'/' 如: "/var/xxx/xxx/upload"
    static $UploadPath;
    //上传文件保存之后url的前缀,不包含结尾的'/' 如: "/upload"
    static $UploadUrlPrefix;

    //这个库的路径
    static $TbfPath;
    //Tbf的资源的路径
    static $TbfResourcePath;

    //网站根url, 不包括结尾的"/" 例如: http://testphone.dashi.us
    static $RootUrl;
    //网站前台域名 不包括结尾的"/" 例如: http://front.testphone.dashi.us
    static $FrontRootUrl;
    //网站前台路径 不包括结尾的"/" 例如: /var/xxx/xxx/frontWeb
    static $FrontWebFilePath;
    //网站后台域名 不包括结尾的"/" 例如: http://admin.testphone.dashi.us
    static $AdminRootUrl;
    //网站后台路径 不包括结尾的"/" 例如: /var/xxx/xxx/adminWeb
    static $AdminWebFilePath;

    //数据库配置
    static $DbHost;
    static $DbPort = 3306;
    static $DbDatabase;
    static $DbUsername;
    static $DbPassword;

    //那个需要忽略的配置文件里面的信息
    static $ConfigParameters;
    //测试代码,用于http自动测试时双方互相认证,确认正在测试,空表示当前应用不允许测试
    static $TestCode = '';
    //测试开始url,用于http自动测试
    static $TestUrlBase = '';
    //当前进程是否正在执行测试
    static $IsTesting = false;

    static function LoadFromParameters(){
        if (empty(self::$ConfigParameters)){
            throw new \Exception("[TbfConfig.LoadFromParameters] parameters is empty");
        }
        self::LoadDbConfig(self::$ConfigParameters);
        if (!empty(TbfConfig::$ConfigParameters['RootUrl'])) {
            TbfConfig::$RootUrl = TbfConfig::$ConfigParameters['RootUrl'];
        }
        if (!empty(TbfConfig::$ConfigParameters['TestCode'])){
            TbfConfig::$TestCode = TbfConfig::$ConfigParameters['TestCode'];
        }
        if (!empty(TbfConfig::$ConfigParameters['TestUrlBase'])){
            TbfConfig::$TestUrlBase = TbfConfig::$ConfigParameters['TestUrlBase'];
        }
    }

    static function LoadDbConfig($config){
        self::$DbHost = $config['DbHost'];
        if (!empty($config['DbPort'])){
            self::$DbPort = $config['DbPort'];
        }
        self::$DbDatabase = $config['DbDatabase'];
        self::$DbUsername = $config['DbUsername'];
        self::$DbPassword = $config['DbPassword'];
    }

    static function PhpcmsLoadDbConfig($config){
        self::$DbHost = $config['hostname'];
        self::$DbDatabase = $config['database'];
        self::$DbUsername = $config['username'];
        self::$DbPassword = $config['password'];
    }


    static function GetCiConfig(){
        return array(
            'default'=>array(
                'hostname'=>self::$DbHost,
                'username'=>self::$DbUsername,
                'password'=>self::$DbPassword,
                'database'=>self::$DbDatabase,
                'dbdriver'=>'mysql',
                'dbprefix'=>'',
                'pconnect'=>TRUE,
                'db_debug'=>TRUE,
                'cache_on'=>FALSE,
                'cachedir'=>'',
                'char_set'=>'utf8',
                'dbcollat'=>'utf8_bin',
                'swap_pre'=>'',
                'autoinit'=>TRUE,
                'stricton'=>FALSE,
            ),
        );
    }
}
